字面值
  在前面的示例中,有两个字面值的示例:整数(17)和字符串("\"myInteger\" is")。其他变量类型也有相关的字面值,如表 3-4 所示。其中有许多涉及后缀,即在字面值的后面添加一些字符,来指定想要的类型。一些字面值有多种类型,在编译时由编译器根据它们的上下文确定其类型(同样 见表 3-4)
| 类型 | 类别 | 后缀 | 示例/允许的值 | 
|---|---|---|---|
| bool | 布尔 | 无 | true 或 false | 
| int, uint, long, ulong | 整数 | 无 | 100 | 
| uint, ulong | 整数 | u 或 U | 100U | 
| long, ulong | 整数 | l 或 L | 100L | 
| ulong | 整数 | ul、uL、UI、UL、lu、lU、Lu 或 LU | 100UL | 
| float | 实数 | f 或 F | 1.5F | 
| double | 实数 | 无、d 或 D | 1.5 | 
| decimal | 实数 | m 或 M | 1.5M | 
表3-4 字面值
字符串的字面值
  本章前面介绍了几个可在字符串的字面值中使用的转义序列,表 3-5 是这些转义序列的完整列表,以便以后引用。
表3-5 字符串字面值的转义序列
| 转义序列 | 产生的字符 | 字符的 Unicode 值 | 
|---|---|---|
| \' | 单引号 | 0x0027 | 
| \" | 双引号 | 0x0022 | 
| \ | 反斜杠 | 0x005C | 
| \0 | 空 | 0x0000 | 
| \a | 警告(产生蜂鸣) | 0x0007 | 
| \b | 退格 | 0x0008 | 
| \f | 换页 | 0x000C | 
| \n | 换行 | 0x000A | 
| \r | 回车 | 0x000D | 
| \t | 水平制表符 | 0x0009 | 
| \v | 垂直制表符 | 0x000B | 
 &emsp 表 3-5 中的 “字符的 Unicode 值” 列是字符在 Unicode 字符集中的 16 进制值。除了上面这些,还可以使用 Unicode 转义序列指定其他任何 Unicode 字符,该转义序列包括标准的 \ 字符,后跟一个 u 和一个 4 位十六进制值(例如,表 3-5 中 x 后面的 4 位数字)。
下面的字符串是等价的:
    "Karli\'s string."
    "Karli\u0027s string."
显然,Unicode 转义序列还有更多用途。
  也可以一字不变地指定字符串,即两个双引号之间的所有字符都包含在字符串中,包括行末字符和原本需要转义的字符。唯一的例外是必须指定双引号字符的转义序列,以免结束字符串。这种方法需要在字符串之前加一个 @ 字符:
    @"Verbatim string literal."
  也可以用普通方式指定这个字符串,但下面的字符串就必须使用 @ 字符:
    @"A short list:
    item 1
    item 2"
一字不变的字符串在文件中非常有用,因为文件名中大量使用了反斜杠字符。如果使用一般的字符串,就必须在字符串使用两个反斜杠,例如:
    "C:\\Temp\\MyDir\\MyFile.doc"
从本书的后面可以看出,字符串是引用类型,而本章中的其他类型都是值类型。所以,字符串也可以被赋予
null值,表示字符串变量不引用字符串(或其他任何东西)。
🔚